-- 设置请求方法为 POST
wrk.method="POST"

-- 设置请求头，指定发送的内容类型为 JSON
wrk.headers["Content-Type"] = "application/json"

-- 获取 math 模块的 random 函数
local random = math.random

-- 定义一个函数用于生成 UUID
local function uuid()
    local template = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
    -- 使用 gsub 函数和回调生成 UUID
    return string.gsub(template, '[xy]', function (c)
        local v = (c == 'x') and random(0, 0xf) or random(8, 0xb)
        -- 将数值转换为十六进制字符串
        return string.format('%x', v)
    end)
end

-- 初始化函数，在每个线程开始时调用
function init(args)
    -- 初始化计数器，用于生成唯一的 email 地址
    cnt = 0
    -- 生成一个 UUID 作为 email 的前缀
    prefix = uuid()
end

-- 请求函数，用于生成每个请求
function request()
    -- 使用 prefix 和计数器生成唯一的 email 地址
    body = string.format('{"email": "%s%d@qq.com","password": "hello#world123","confirmPassword": "hello#world123"}', prefix, cnt)
    -- 每次请求后递增计数器
    cnt = cnt + 1
    -- 使用 wrk.format 生成请求
    return wrk.format('POST', wrk.path, wrk.headers, body)
end

-- 响应函数，在每个请求的响应参数被接收时调用
-- 在这个脚本中，这个函数是空的，意味着不对响应做任何处理
function response()
    -- 这里可以添加处理响应的代码
end